package com.example.performance.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * Web页面控制器
 * 负责渲染Web管理界面的页面
 */
@Controller
public class WebController {

    /**
     * 首页 - 配置列表页面
     */
    @GetMapping("/")
    public String index(Model model) {
        model.addAttribute("contentTemplate", "index :: content");
        return "layout";
    }

    /**
     * 配置管理页面
     */
    @GetMapping("/configs")
    public String configList(Model model) {
        model.addAttribute("contentTemplate", "configs :: content");
        return "layout";
    }

    /**
     * 创建新配置页面
     */
    @GetMapping("/configs/new")
    public String createConfig(Model model) {
        model.addAttribute("contentTemplate", "config-editor :: content");
        return "layout";
    }

    /**
     * 编辑配置页面
     */
    @GetMapping("/configs/{configId}/edit")
    public String editConfig(@PathVariable String configId, Model model) {
        model.addAttribute("contentTemplate", "config-editor :: content");
        return "layout";
    }

    /**
     * 测试执行页面
     */
    @GetMapping("/tests")
    public String testList(Model model) {
        model.addAttribute("contentTemplate", "tests :: content");
        return "layout";
    }

    /**
     * 测试监控页面
     */
    @GetMapping("/tests/{sessionId}/monitor")
    public String monitorTest(@PathVariable String sessionId, Model model) {
        // 使用现有的tests模板，因为test-monitor.html不存在
        model.addAttribute("contentTemplate", "tests :: content");
        return "layout";
    }

    /**
     * 测试报告页面
     */
    @GetMapping("/reports")
    public String reportList(Model model) {
        model.addAttribute("contentTemplate", "reports :: content");
        return "layout";
    }

    /**
     * 查看报告详情页面
     */
    @GetMapping("/reports/{sessionId}")
    public String viewReport(@PathVariable String sessionId, Model model) {
        // 使用现有的reports模板，因为report-detail.html不存在
        model.addAttribute("contentTemplate", "reports :: content");
        return "layout";
    }
}